package algorithms.sort.n2;

import algorithms.sort.SortingVisualization;

/**
 * 选择排序
 */
public class SelectionSort extends SortingVisualization {

    /**
     * 初始化窗口大小并
     *
     * @param array
     */
    public SelectionSort(int[] array) {
        super(array);
    }

    @Override
    public void showSortingProcess() {
        //遍历数组，每次找出最小的元素，按顺序放到数组前面
        for (int i = 0; i < array.length; i++) {
            int min = i;
            for (int j = i; j < array.length; j++) {
                if (array[min] > array[j]) {
                    min = j;
                }
            }
            //交换元素
            int temp = array[min];
            array[min] = array[i];
            array[i] = temp;
            sortPanelRepaint();
        }
    }
}
